export interface IAddStudentRequestData {
  identityCardId: string
  classId: number | undefined
  name: string
  sex: string
  /**
   * 入学时间
   */
  enrollmentTime: string
  graduateTime: string
  identificationPhotoUrl: string
}

export interface ISearchStudentData {
  identityCardId: string
  classId: number | undefined
  name: string
  sex: string
  /**
   * 入学时间
   */
  enrollmentTime: string
  creationTime: string
  graduateTime: string
  projectId: number | undefined
  departmentId: number | undefined
  certificateNo: string
}

export interface IAddStudentResponseData {
  id: number
  identityCardId: string
  password: string
  classId: number | undefined
  className: string
  name: string
  sex: string
  enrollmentTime: string
  graduateTime: string
  identificationPhotoUrl: string
  /**
   * 发放证书时间
   */
  creationTime: string
  /**
   * 证书编号
   */
  certificateNo: string
  isDel: number
}

export interface IUpdateStudentRequestData {
  id: number | undefined
  identityCardId: string
  classId: number | undefined
  name: string
  sex: string
  identificationPhotoUrl: string
}

export interface IGetStudentRequestData {
  page: number
  size: number
  identityCardId?: string
  classId?: number | undefined
  name?: string
  sex?: string
  enrollmentTime?: string
  graduateTime?: string
  creationTime?: string
  certificateNo?: string
}

export type IGetStudentResponseData = IAddStudentResponseData

export interface IGetStudentByCardIdResponseData {
  trainingInfo: string
  name: string
  enrollmentTime: string
  graduateTime: string
  creationTime: string
  certificateNo: string
  identificationPhotoUrl: string
  projectName: string
}

export interface IGetGraduateInfoResponseData {
  name: string
  enrollmentTime: string
  graduateTime: string
  creationTime: string
  certificateNo: string
  identificationPhotoUrl: string
}

export interface IAddGraduateStudentsRequestData {
  classId: number | undefined
  year: string
  creationTime: string
  trainingInfo: string
  departmentId: number | undefined
}

export interface IExportStatisticsExcelRequestData {
  classId: number | undefined
  departmentId: number | undefined
  projectId: number | undefined
}

export type AddGraduateStudentsResponseData = IApiResponseData<null>

export type AddStudentResponseData = IApiResponseData<{
  student: IAddStudentResponseData[]
}>

export type DeleteStudentResponseData = IApiResponseData<null>
export type UpdateStudentResponseData = IApiResponseData<{
  student: IAddStudentResponseData[]
}>
export type GetStudentResponseData = IApiResponseData<{
  total: number
  list: IGetStudentResponseData[]
}>
export type GetStudentByCardIdResponseData = IApiResponseData<{
  graduateInfo: IGetStudentByCardIdResponseData[]
  total: number
  headmaster: string
}>
export type GetGraduateInfoResponseData = IApiResponseData<{
  total: number
  graduateInfo: IGetGraduateInfoResponseData[]
  headmaster: string
  trainingInfo: string
  className: string
}>
